/**
 * 系统后台数据配置服务JS-DataService.jsp
 */

//项目路径
var strPath = window.document.location.pathname;
//var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
var postPath = "";

var editStart=1;
var biaobiao =1;
var guid = 0;
$(function(){
	$("#dbiedn").hide();
	//左侧tree数据绑定
	var setting = {	
		data: {
			key:{
				title:"hint"
			},
			simpleData: {
				enable: true
			}
		},
		callback: {
			onClick: onClick
		}
	};
	var zNodes =GetLeftTreeData();
	$.fn.zTree.init($("#tree"), setting, zNodes);
	
	//Tree点击事件
	function onClick(event, treeId, treeNode, clickFlag) {
		biaobiao = treeNode.id;
		$("#hid_dbKey").val(treeNode.id);
		$("#tb_dataList").bootstrapTable('refresh');
		GetTableList();
	}

	//获取左侧列表数据
	function GetLeftTreeData()
	{
		var treeData;
		$.ajax({
	        type : 'get',
	        url : postPath + '/system/singleTable/treeList',
	        async : false,
	        success : function(res) {
	        	treeData=res;
	        },  
	        error : function() {  
	            alert('error...');  
	        }  
	    });
		return treeData;
	}
	
	//查询数据列表
	function GetTableList(){
		$("#tb_dataList").bootstrapTable({  
		    url : postPath + '/system/server/paging',
		    undefinedText : '-',  
		    pagination : true, // 分页  
		    striped : true, // 是否显示行间隔色  
		    queryParams : queryParams,  
		    cache : false, // 是否使用缓存  
		    pageList : [ 5, 10, 20 ],  
		    toolbar : "",// 指定工具栏  
		    showColumns : false, // 显示隐藏列  
		    showRefresh : false, // 显示刷新按钮  
		    uniqueId : "guid", // 每一行的唯一标识  
		    sidePagination : "server", // 服务端处理分页  
		    columns : [ {  
		        field : 'state',  
		        checkbox : true,  
		        align : 'center',  
		        valign : 'middle'  
		    }, {  
		        title : '服务ID',  
		        field : 'guid',  
		        align : 'left',  
		        valign : 'middle',  
		        sortable : false 
		    }, {  
		        title : '服务名称',  
		        field : 'name',  
		        align : 'left',  
		        valign : 'middle',  
		        sortable : false  
		    }, {  
		        title : '数据库标志',  
		        field : 'dbKey',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false  
		    }, {  
		        title : 'SQL脚本',  
		        field : 'sql',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false  
		    }, {  
		        title : '备注',  
		        field : 'remake',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false
		    },  {  
		        title : '是否缓存',  
		        field : 'catched',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false,
		        formatter:function(value,row,index){
		        	if(value == 1){
		        		return "是";
		        	}else{
		        		return "否";
		        	}
		        }
		    },  {  
		        title : '参数类型',  
		        field : 'paramtype',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false,
		        formatter:function(value,row,index){
		        	if(value == 1){
		        		return "语法参数";
		        	}else{
		        		return "普通参数";
		        	}
		        }
		    }, {  
		        title : '创建日期',  
		        field : 'createDate',  
		        align : 'center',  
		        valign : 'middle',  
		        sortable : false
		    } ]
		});
	}
	
	//查询条件与分页数据   
	function queryParams(pageReqeust) {  
	    var temp = {
	        order: pageReqeust.order,
	        pageNo: pageReqeust.offset/pageReqeust.limit+1,
	        pageSize: pageReqeust.limit,
	        dbKey:$("#hid_dbKey").val()
	    };
	    return temp;
	}
	//添加操作
	$("#btn_add").click(function(){
		cleanContent();
		$("#EditContent").modal('show');
		editStart=1;
	});
	
	//删除数据
	$("#btn_del").click(function(){
		var row = $('#tb_dataList').bootstrapTable('getSelections');
        if (row == null || row == "") {
            bootbox.alert("请选择一行!");
            return;
        }
		bootbox.confirm("确认删除?", function(result) {
			if(result == false)
				return;
			var keys="";
			$.each(row,function(i,e){
				keys+=e.guid+",";
			});
			keys = keys.substring(0,keys.length-1);
			 $.ajax({
	                url:  postPath + '/system/server/deleteServer',
	                type: 'POST',
	                data: { keys: keys },
	                success: function (data) {
	                    bootbox.alert("删除成功!");
	                    $('#tb_dataList').bootstrapTable('refresh');
	                },
	                error:function()
	                {
	                	bootbox.alert("删除失败!");
	                }
	            });
         }); 
	});
	
	
	//修改操作
	$("#btn_edit").click(function(){
		cleanContent();
		var row = $('#tb_dataList').bootstrapTable('getSelections');
        if (row == null || row == "") {
        	bootbox.alert("请选择一行!");
            return;
        }
        guid = row[0].guid;
        $.ajax({
            type : 'get',
            url : postPath + '/system/server/seleServerOne',
            async : false,
            data : {key:row[0].guid},
            success : function(res) {
            	$("#guid").val(guid);
            	$("#guid").attr("readonly","readonly");
            	$("#name").val(res.name);
            	$("#dbkey").val(res.dbkey);
            	$("#sql").val(res.sql);
            	$("#remark").val(res.remake);
            	if(res.catched==1){$("#male").attr('checked', 'checked');}
				if(res.catched==0){$("#female").attr('checked', 'checked');}
				if(res.catched==1){$("#feparamtype").attr('checked', 'checked');}
				if(res.catched==0){$("#paramtype").attr('checked', 'checked');}
            	editStart=2;
            }
        });
        $("#EditContent").modal('show');
        
	});
	
	//保存数据
	$("#btn_save").click(function(){
		var validataResult = validateData();
		if(validataResult)
		{
			var editurl="";
			if(editStart ==1){
				editurl = postPath + '/system/server/insertServer';
			}else if(editStart == 2){
				editurl = postPath+ '/system/server/updateServer';
			}
			var ad = biaobiao;
			var serverdb ="";
			if(editStart ==2){
				serverdb ={
						name:$("#name").val(),
						dbKey:ad,
						sql:$("#sql").val(),
						guid:guid,
						remake:$("#remark").val(),
						catched: $("input[name='catched']:checked").val(),
						paramtype: $("input[name='paramtypes']:checked").val()
				};
			}
			if(editStart==1){
				serverdb ={
						guid:$("#guid").val(),
						name:$("#name").val(),
						dbKey:ad,
						sql:$("#sql").val(),
						remake:$("#remark").val(),
						catched: $("input[name='catched']:checked").val(),
						paramtype: $("input[name='paramtypes']:checked").val()
				};
			}
			 $.ajax({
                 type : 'POST',
                 url : editurl ,
                 async : false,
                 data : JSON.stringify(serverdb),
                 dataType : 'json',
                 contentType:"application/json",
                 success : function(res) {
                		 bootbox.alert("保存成功!");
 	                    $('#tb_dataList').bootstrapTable('refresh');
 	                   $("#EditContent").modal('hide');
                 }
             });
			
		}
		
	});
	
})

function cleanContent()
{
	//维护内容清空
	$("#guid").val("");
	$("#guid").removeAttr("readonly");
	$("#name").val("");
	$("#dbkey").val("");
	$("#sql").val("");
	$("#remark").val("");
	
	//验证信息清空
	$("#valide_guid").html("");
	$("#valide_name").html("");
	$("#valide_dbkey").html("");
	$("#valide_sql").html("");
	$("#valide_remark").html("");
}

//验证表单内容
function validateData()
{
	if(editStart==1){
		if($("#guid").val() == ""){
			$("#valide_guid").html("服务ID不能为空!");
			return false;
		}else{
			var result = false;
			$.ajax({
				type:"post",
				url:postPath + '/system/server/isExsitByguid',
				data:{guid:$("#guid").val()},
				async:false,
				success:function(res){
					result=res;
				}
			})
			if(result == true){
				$("#valide_guid").html("服务ID已存在!");
				return false;
			}else{
				$("#valide_guid").html("");
			}
		}
	}
	if($("#name").val() == ""){
		$("#valide_name").html("服务名称不能为空!");
		return false;
	}else{
		$("#valide_name").html("");
	}
	if($("#dbKey").val() == ""){
		$("#valide_dbKey").html("数据库标志不能为空!");
		return false;
	}else{
		$("#valide_dbKey").html("");
	}
	if($("#sql").val() == ""){
		$("#valide_sql").html("sql脚本不能为空!");
		return false;
	}else{
		$("#valide_sql").html("");
	}

	var Cts = $("#sql").val();
	if(Cts.toLowerCase().indexOf('insert'.toLowerCase())>-1 ){
		$("#valide_sql").html("sql脚本不能添加删除操作!");
		return false;
	}else{
		$("#valide_sql").html("");
	}
	if(Cts.toLowerCase().indexOf('delete'.toLowerCase())>-1 ){
		$("#valide_sql").html("sql脚本不能添加刪除操作!");
		return false;
	}else{
		$("#valide_sql").html("");
	}
	if(Cts.toLowerCase().indexOf('update'.toLowerCase())>-1 ){
		$("#valide_sql").html("sql脚本不能添加修改操作!");
		return false;
	}else{
		$("#valide_sql").html("");
	}
	if($("#remake").val() == ""){
		$("#valide_remake").html("备注不能为空!");
		return false;
	}else{
		$("#valide_remake").html("");
	}
	return true;
}